home *** CD-ROM | disk | FTP | other *** search
- /*
- File: USB_ClassDriverAccess.h
-
- Contains: Prototypes and definition for accessing the USB class driver
-
- Version: 1.0
-
- Copyright: © 1999-2000 by Apple Computer, Inc., all rights reserved.
-
-
- */
-
- #pragma once
-
- #include "StorageClassPublicAPI.h"
-
- enum
- {
- kInternalPBBufferSize = 256
- };
-
- // The Parameter block used by all the internal requests
- typedef struct IntDriveRequestPB
- {
- StorageExecuteCommandPB executePB;
- volatile OSStatus status;
- UInt8 currentExecutionState;
- UInt8 autoStatus[2];
- Boolean autoStatusIsValid;
- UInt8 buffer[kInternalPBBufferSize];
- UInt32 userData;
- void *completionProc;
- void *userCompletionProc;
- Ptr userBuffer;
- Boolean isWriteRequest;
- volatile Boolean inUse;
- } IntDriveRequestPB, *IntDriveRequestPBPtr;
-
- typedef CALLBACK_API_C( void , InternalCompletionProcPtr )( IntDriveRequestPBPtr requestPB );
-
- extern Boolean IsClassDispatchTableValid( void );
- extern void SetClassDispatchTable( StorageClassDispatchTablePtr newValue );
- extern OSStatus InitializeClassAccess( void );
- extern OSStatus TerminateClassAccess( void );
- extern OSStatus SendClassStatusCall( UInt32 selectorCode, void *dataBuffer );
- extern OSStatus SendClassControlCall( UInt32 selectorCode, void *dataBuffer );
-
- extern IntDriveRequestPBPtr GetDriveInternalPB( void );
- extern void FreeInternalPB( IntDriveRequestPBPtr intDrivePB );
- extern Boolean IsCommandPending( void );
- extern OSStatus SendDeviceRequest( StorageExecuteCommandPB *commandPB );
- extern void DeviceRequestCompletion( void *thePB );
- extern OSStatus AbortPendingCommand( void );
-
- extern IntDriveRequestPBPtr GetManualEjectPB( void );
- extern void FreeManualEjectPB( IntDriveRequestPBPtr intDrivePB );
-